#ifndef __BRDF__
#define __BRDF__

#include "Sampler.h"
#include "RGBColor.h"
#include "ShadeRec.h"

namespace Engine
{

	class BRDF
	{
	public:

		virtual RGBColor f(ShadeRec& sr, Point3D& wi, Point3D& w0, bool usesTexture) = 0;
		virtual RGBColor sampleF(ShadeRec& sr, Point3D& wi, Point3D& w0) = 0;
		virtual RGBColor rho(ShadeRec& sr, Point3D& w0) = 0;

	private:
		Sampler* m_samplePtr;

	};
}

#endif // !__BRDF__
